package com.j180.service.store.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.j180.bean.PageBean;
import com.j180.bean.Store;
import com.j180.bean.StoreCount;
import com.j180.dao.store.IStoreDao;
import com.j180.service.store.IStoreService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
@Service
public class StoreServiceImpl implements IStoreService {
    //注入
    @Autowired
    private IStoreDao iStoreDao;

    /**
     * 平台管理员查询所有门店信息
     * @return 查询结果
     */
    @Override
    public List<Store> showAllStoreInfo() {
        return iStoreDao.getAllStoreInfo();
    }

    /**
     * 平台管理员根据门店ID查询门店信息
     * @param id 门店id
     *@return 查询结果
     */
    @Override
    public Store showStoreDetailInfoById(int id) {
        return iStoreDao.getStoreDetailInfoById(id);
    }

    /**
     * 门店管理员根据门店id查询自己门店详细信息
     * @param id  门店iD
     * @return  查询结果
     */
    @Override
    public List<Store> getAllStoreInfoForConnect(int id) {
        return iStoreDao.getAllStoreInfoForConnect(id);
    }

    /**
     * 新增门店
     * @param store   传入门店
     */
    @Override
    public int addStore(Store store) {
        return iStoreDao.addStore(store);
    }

    /**
     * 删除门店
     * @param id 要删除门店ID
     */
    @Override
    public int delStore(int id) {
        return iStoreDao.delStore(id);
    }

    /**
     * 更新修改门店信息
     * @param store 传入门店实体
     */
    @Override
    public int editStore(Store store) {
        return iStoreDao.EditStore(store);
    }

    /**
     * 门店管理分页
     * @param curPage 分页页数
     * @param pageSize  每页显示条数
     * @return
     */
    @Override
    public PageBean pageInfo(int curPage, int pageSize) {
        PageHelper.startPage(curPage,pageSize);
        List<Store> allStoreInfo = iStoreDao.getAllStoreInfo();

        PageInfo<Store> storePage = new PageInfo<>(allStoreInfo);

        PageBean<Store> storePageBean = new PageBean<>();
        storePageBean.setDatas(allStoreInfo);
        storePageBean.setCurrentPage(curPage);
        storePageBean.setPageSize(pageSize);
        storePageBean.setTolPage(storePage.getPages());
        storePageBean.setTolNum((int) storePage.getTotal());

        return storePageBean;
    }

    /**
     * 根据门店名称查询门店信息
     * @param name 门店名称
     * @return 查询结果
     */
    @Override
    public List<Store> showStoreDetailInfoByStoreName(String name) {
        return iStoreDao.getStoreDetailInfoByStoreName(name);
    }

    /**
     * 门店管理员根据门店ID和开始时间到结束时间查看销售数量
     * @param id 门店ID
     * @return 查询结果集
     */
    @Override
    public List<StoreCount> showStoreSalesVolumeForDate(int id) {
        List<StoreCount> storeCount = iStoreDao.getStoreSalesVolumeForDate(id);

        return storeCount;
    }
}